##################################################################
CLIB := -lPocoSQLite -lPocoData -lPocoFoundation
CINCL :=-Iosa-control -Iosa-control/vxi11_1 \
	-Iesp301-control -Iesp301-control/serialib \
	-Isave-traces

CPPFLAGS = -O2 $(CINCL) $(CINCL)

##################################################################
# Search into sub-directories
vpath osa-control.% osa-control
vpath vxi11% osa-control/vxi11_1

vpath save-traces.% save-traces
vpath sqlite3_db.% save-traces

vpath esp301-control.% esp301-control
vpath serialib.% esp301-control/serialib

# object FILES
OBJS:=osa-record.o options.o \
	osa-control.o vxi11_clnt.o vxi11_xdr.o vxi11_user.o \
	esp301-control.o serialib.o \
	save-traces.o sqlite3_db.o

##################################################################

.PHONY : clean $(DIRS) doc

all:osa-record doc

# Build documentation
doc:Doxyfile
	doxygen

##################################################################
# Core executable
osa-record: $(OBJS) $(CLIB)

osa-record.o: osa-record.cpp options.h \
	osa-control.h vxi11.h vxi11_user.h \
	esp301-control.h serialib.h \
	save-traces.h sqlite3_db.h

options.o: %.o: %.cpp %.h

##################################################################
# OSA control interface
osa-control.o: %.o: %.cpp %.h vxi11_user.h

# VXI11 interface
vxi11_user.o:vxi11_user.cc vxi11.h

vxi11_clnt.o vxi11_xdr.o:%.o:%.c vxi11.h

# To work around the generation of absolution path in RPCGEN
osa-control/vxi11_1/vxi11_clnt.c osa-control/vxi11_1/vxi11_xdr.c:vxi11.h
	@

osa-control/vxi11_1/vxi11.h: vxi11.x
	cd osa-control/vxi11_1/ &&\
	rpcgen -M vxi11.x

##################################################################
# ESP301 control interface
esp301-control.o serialib.o: %.o: %.cpp %.h serialib.h

##################################################################
# SQL database interface
save-traces.o sqlite3_db.o: %.o: %.cpp %.h sqlite3_db.h

##################################################################
clean:
	rm -f *.o
